/**
 * 1.数组元素可以是任意数据类型
 */
//1.直接字面量创建数组
//var arr = [10,'hello',true,null,undefined,{name:'张三'}];
//console.log (arr,'数组')
//2.通过索引/下标访问数组元素 从0开始 arr[index] arr.length数组长度 也就是数组元素个数
//console.log(arr[3]);

/**
 * 数组apt
 * 1.pop方法 从数组末尾删除一个数组元素
 * 2.push方法 从数组末尾增加一个数组元素
 * 3.shift方法 从数组头部开始删除一个数组元素
 * 4.unshift 从数组头部开始添加一个数组元素
 * 5.splice 从数组任意位置删除或者增加数组元素
 *       参数：index howmany（值是0表示添加 只是n表示删除几项）
 * 6.reverse 反转数组元素
 */
//arr.pop();
//arr.push('hello js');
//arr.shift();
//arr.unshift(100,200,300);
//arr.splice(2,0,false,100);//表示从索引为2的位置增加数组元素 增加的是false和100
//arr.splice(4,1);//表示从索引为4的位置删除1项数组元素
//arr.reverse();
//console.log(arr);

//循环遍历数组元素
//for(let i=0;i<arr.length;i++){
//     console.log(i,arr[i]);
//}
//for(let index in arr){
//    console.log(index,arr[index])
//}

/**
 * 迭代方法
 * 1.forEach for循环的升级版 循环遍历数组元素
 * 2.filter 过滤符合条件的数组元素
 * 3.map方法 映射 对每一个数组元素映射
 */
//var arr = [10,'hello',true,null,undefined,{name:'张三'}];
//var res = arr.map(fuction (item,index,arr){
//    return Number(item)
//})
//console.log(res)

//arr.forEach(function(item,index,arr){
//    //item 表示数组每一项index 表示每一项对应的索引arr表示数组本身
//    item = item +1;
//    console.log(item.index,arr)
//})

//var res = arr.filter(function(item,index,arr){
//    //要获取函数返回值 函数内部需要使用return返回
//    //console.log(typeof item)
//    return typeof item == 'number'
//})
//console.log(res)


//2.使用构造函数创建数组
var arr = new Array(10,20,30,40,50);
var arr = new Array(10);//单独放number会被认为是数组长度
console.log(arr)